package eerbaar.shared.persist.lib;

import eerbaar.action.IAction;
import eerbaar.area.IArea;
import eerbaar.body.IBrain;
import eerbaar.body.IHead;
import eerbaar.context.IParam;
import eerbaar.context.IParams;
import eerbaar.elements.IElement;
import eerbaar.expression.IExpression;
import eerbaar.game.IGame;
import eerbaar.level.IActions;
import eerbaar.level.IComplete;
import eerbaar.level.IExpressions;
import eerbaar.level.IHint;
import eerbaar.level.IHints;
import eerbaar.level.ILevel;
import eerbaar.level.IMessage;
import eerbaar.level.IMessages;
import eerbaar.level.IStartup;
import eerbaar.level.IState;
import eerbaar.level.IStates;
import eerbaar.memory.IMemory;
import eerbaar.persona.IPersona;
import eerbaar.position.IPosition;
import eerbaar.shared.persist.IPersistService;
import eerbaar.shared.persist.internal.lib.ActionPersister;
import eerbaar.shared.persist.internal.lib.ActionsPersister;
import eerbaar.shared.persist.internal.lib.AreaPersister;
import eerbaar.shared.persist.internal.lib.BrainPersister;
import eerbaar.shared.persist.internal.lib.CompletePersister;
import eerbaar.shared.persist.internal.lib.ElementPersister;
import eerbaar.shared.persist.internal.lib.ExpressionPersister;
import eerbaar.shared.persist.internal.lib.ExpressionsPersister;
import eerbaar.shared.persist.internal.lib.GamePersister;
import eerbaar.shared.persist.internal.lib.HeadPersister;
import eerbaar.shared.persist.internal.lib.HintPersister;
import eerbaar.shared.persist.internal.lib.HintsPersister;
import eerbaar.shared.persist.internal.lib.LevelPersister;
import eerbaar.shared.persist.internal.lib.MemoryPersister;
import eerbaar.shared.persist.internal.lib.MessagePersister;
import eerbaar.shared.persist.internal.lib.MessagesPersister;
import eerbaar.shared.persist.internal.lib.ParamPersister;
import eerbaar.shared.persist.internal.lib.ParamsPersister;
import eerbaar.shared.persist.internal.lib.PersonaPersister;
import eerbaar.shared.persist.internal.lib.PositionPersister;
import eerbaar.shared.persist.internal.lib.StartupPersister;
import eerbaar.shared.persist.internal.lib.StatePersister;
import eerbaar.shared.persist.internal.lib.StatesPersister;
import eerbaar.shared.persist.node.NodePersister;
import eerbaar.shared.service.ServiceFactory;
import eerbaar.shared.tree.INode;

public class Module {

    public void onModuleLoad() {

        registerServices();
    }

    public void registerServices() {

        IPersistService service = ServiceFactory
                .getService(IPersistService.class);

        service.register(IAction.class, new ActionPersister());
        service.register(IActions.class, new ActionsPersister());
        service.register(IArea.class, new AreaPersister());
        service.register(IBrain.class, new BrainPersister());
        service.register(IComplete.class, new CompletePersister());
        service.register(IElement.class, new ElementPersister());
        service.register(IExpression.class, new ExpressionPersister());
        service.register(IExpressions.class, new ExpressionsPersister());
        service.register(IGame.class, new GamePersister());
        service.register(IHead.class, new HeadPersister());
        service.register(IHint.class, new HintPersister());
        service.register(IHints.class, new HintsPersister());
        service.register(ILevel.class, new LevelPersister());
        service.register(IMemory.class, new MemoryPersister());
        service.register(IMessage.class, new MessagePersister());
        service.register(IMessages.class, new MessagesPersister());
        service.register(INode.class, new NodePersister());
        service.register(IParam.class, new ParamPersister());
        service.register(IParams.class, new ParamsPersister());
        service.register(IPersona.class, new PersonaPersister());
        service.register(IPosition.class, new PositionPersister());
        service.register(IStartup.class, new StartupPersister());
        service.register(IState.class, new StatePersister());
        service.register(IStates.class, new StatesPersister());

    }

}
